﻿using Factory.MasterData.Materials.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace Factory.MasterData.Materials
{
    /// <summary>
    /// 物料服务接口
    /// </summary>
    public interface IMaterialAppService : IApplicationService
    {
        /// <summary>
        /// 显示物料信息
        /// </summary>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSize">页容量</param>
        /// <param name="materialCode">物料编码</param>
        /// <param name="materialName">物料名称</param>
        /// <param name="materialClassificationId">物料/产品</param>
        /// <returns>返回结果</returns>
        Task<PageResult> GetMaterialList(int pageIndex, int pageSize, string? materialCode, string? materialName, int? materialClassificationId);
        /// <summary>
        /// 删除物料信息
        /// </summary>
        /// <param name="materialCodes">要删除的物料编码</param>
        /// <returns>返回结果</returns>
        Task<int> DeletedMaterial(string materialCodes);
        /// <summary>
        /// 添加物料信息
        /// </summary>
        /// <param name="materialDto">要添加的物料编码</param>
        /// <returns>返回结果</returns>
        Task<int> AddMaterial(MaterialDto materialDto);
        /// <summary>
        /// 编辑物料信息
        /// </summary>
        /// <param name="materialDto">要编辑的物料编码</param>
        /// <returns>返回结果</returns>
        Task<int> UpdateMaterial(MaterialDto materialDto);
    }
}
